﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NekoVampire.Twitter;

namespace Co9320.NamaAlert.Extension.Model
{
    class Twitter
    {
        private ISetting setting;
        public ISetting Setting { get { return setting; } }
        private SendTwitter twitter;

        public Twitter(ISetting setting)
        {
            this.setting = setting;
            twitter = new SendTwitter(setting.UserName, setting.Password);
            setting.ChangedSetting += new EventHandler(setting_ChangedSetting);
        }

        private void setting_ChangedSetting(object sender, EventArgs e)
        {
            twitter.UserName = setting.UserName;
            twitter.Password = setting.Password;
        }

        /// <summary>
        /// 自分のステータスを更新(update)する。
        /// </summary>
        /// <param name="status">ステータス</param>
        public void SendUpdate(string status)
        {
            twitter.SendUpdate(status);
        }

        /// <summary>
        /// 自分のステータスを更新(update)する。
        /// </summary>
        /// <param name="status">ステータス</param>
        public void SendUpdate(string status, Action<Stream> invoker)
        {
            twitter.SendUpdate(status, invoker);
        }

        /// <summary>
        /// 自分のステータスを更新(update)する。
        /// </summary>
        /// <param name="status">ステータス</param>
        public void SendUpdateAsync(string status)
        {
            twitter.SendUpdateAsync(status);
        }

        /// <summary>
        /// 自分のステータスを更新(update)する。
        /// </summary>
        /// <param name="status">ステータス</param>
        public void SendUpdateAsync(string status, Action<Stream> invoker)
        {
            twitter.SendUpdateAsync(status, invoker);
        }
    }
}
